java - long 1l,float 1f,double 1d,byte呢?
全部标签 我有值40880.051388并将其存储为double值,如果我打开Excel并粘贴到一个单元格中并将以下自定义格式“m/d/yyyyh:mm”应用到该值单元格,我得到"12/3/20111:14"如何在C#中执行此解析/转换?我不知道该值是否是某个检查点的毫秒数,例如纪元时间,或者该值是否采用某种特定的准备格式,但excel是如何得出这个特定值的?可以在C#中完成吗?我已经尝试在VisualStudio中使用TimeSpan、DateTime和其他类似的东西,但没有任何进展。 最佳答案 看起来您正在使用旧的OLEAutomatio
我正在尝试在WPF中制作一个只有数字的TextBox并且我有以下代码:voidNumericTextBox_PreviewTextInput(objectsender,TextCompositionEventArgse){e.Handled=!IsValidInput(e.Text);}privateboolIsValidInput(stringp){switch(this.Type){caseNumericTextBoxType.Float:returnRegex.Match(p,"^[0-9]*[.][0-9]*$").Success;caseNumericTextBoxType.
我有一个.CSV文件,我正在将其读入C#程序。在其中一列中,有一个日期,但它是“通用”格式,因此它在.CSV中显示为数字。例如:41172。如何在C#中将此数字转换为格式为dd/mm/yyyy的日期?41172相当于2012年9月20日。 最佳答案 要从“Excel格式”的日期时间转换为C#日期时间,您可以使用DateTime.FromOADate功能。在你上面的例子中:DateTimemyDate=DateTime.FromOADate(41172);要以所需格式写出显示,请使用:myDate.ToString("dd/MM/yy
我有一个使用点(".")作为小数点分隔符的源XML,我在使用逗号(",")作为小数点分隔符的系统上解析它。因此,值0.7被Double.TryParse或Double.Parse解析为7000000。正确解析的选项有哪些?其中之一是使用String.Replace('.',',')用逗号替换源中的点,但我认为我不太喜欢这个。 最佳答案 XML标准明确规定了日期和数字等格式。这有助于确保XML独立于平台且可互操作。看看使用XmlConvert用于xml数据。doublevalue=XmlConvert.ToDouble(stringV
如果对float进行排序,C#中的Array.Sort非常快,我需要一些额外的数据来处理这些float,所以我创建了一个简单的类并扩展了IComparable接口(interface)。现在Array.Sort突然慢了3-4倍,这是为什么?我该如何提高性能?演示代码:usingSystem;usingSystem.Diagnostics;usingSystem.Linq;namespaceSortTest{classProgram{staticvoidMain(string[]args){intarraySize=10000;intloops=500;doublenormalFloat
我有一个浮点值:12345.6489当我格式化时使用:(12345.6489f).ToString("F1")然后我得到一个结果12345.7但这是不正确的,因为它应该是12345.6。有谁知道为什么会发生这种情况?另一个提示是,在格式化之前转换为double会返回正确的结果,如果我的浮点值小一点,例如1234.6489,那么我也会得到正确的结果。 最佳答案 这好像和我前段时间问的一个问题有关:Round-twiceerrorin.NET'sDouble.ToStringmethod请注意,如果您对号码调用.ToString("G"
从JSON解析float时,如何让JSON.NET返回小数而不是double?(这是一个序列化的带有Dictionary的对象)。我已经尝试编写一个JsonConverter,但是CanConvert方法没有被调用为Double类型以尝试转换它。还有其他关于覆盖JsonTextReader的代码,但这在最新版本的Json.Net中似乎不可能。 最佳答案 在Json.NET5.0中,Newtonsoft.Json.JsonSerializerSettings类有新的属性FloatParseHandling,你可以设置这个属性值Newt
尽量不要在这里重复自己(干),帮帮我。=)我有一个double代表评分/5。可能的值是:0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5.我想将其转换为不带小数位的字符串。所以值会变成:"0","05","1","15","2","25","3","35","4","45","5".我为什么要这样做?因为我正在尝试根据值动态创建链接:stringlink="http://somewhere.com/images/rating_{0}.gif";returnstring.Format(link,"15");可能的值在别处处理/验证,换句话说,我可以100%确定该值将始终是我
我正在使用C#在OSX上的Unity3.4.2中编程。我有一个类如下:classFoo{publicTDoFoo(Tbar){floataFloatValue=1.0f;//Dootherstuff...returnaFloatValue*bar;}}当Unity编译这个类时,它给我这个错误信息:errorCS0019:Operator*'cannotbeappliedtooperandsoftypefloat'and`T'我知道我为T提供的类型将支持float乘法。在这种情况下,我该如何实现泛型乘法? 最佳答案 啊哈,好样的Has
考虑一下:doublex,y;x=120.0;y=0.05;doublez=x%y;我试过了,预计结果是0,但结果是0.04933333。但是,x=120.0;y=0.5;doublez=x%y;确实给出了正确的结果0。这里发生了什么?我尝试了Math.IEEERemainder(double,double)但它也没有返回0。这是怎么回事?另外,顺便说一句,在C#中求余数的最合适方法是什么? 最佳答案 由于其存储格式,double无法存储输入或显示的每个值。数字的人类表示通常采用十进制格式,而double则基于双系统。在double